import { window, Range, Position } from "vscode";
import { 翻译标识符 } from "../ctsTranslate/translateIdentifier";

export class 翻译参数标识符_ {
    public static readonly ID = 'ctsscript.翻译参数标识符_';
    public readonly ID = 翻译参数标识符_.ID;
    public async execute() {
        const 当前文档 = window.activeTextEditor!.document;
        const 当前选择 = window.activeTextEditor!.selection;
        let 当前词范围 = 当前文档.getWordRangeAtPosition(当前选择.start)!;
        if (当前词范围) {
            let 标识符文本 = 当前文档.getText(当前词范围);
            if (标识符文本.startsWith('"') || 标识符文本.startsWith("'") || 标识符文本.startsWith("`")) {
                标识符文本 = 标识符文本.slice(1, -1);
                当前词范围 = new Range(new Position(当前词范围.start.line, 当前词范围.start.character + 1), new Position(当前词范围.end.line, 当前词范围.end.character - 1))
            }
            const 翻译好的标识符 = await 翻译标识符({ 原文: 标识符文本 });
            if (翻译好的标识符.译文组 && 翻译好的标识符.译文组.length) {
                const 译文 = 翻译好的标识符.译文组[0];
                if (译文) {
                    window.activeTextEditor!.edit(e => {
                        e.replace(当前词范围, 译文.译文);
                    });
                }
            }
        }
    }
}
